#include <bits/stdc++.h>
using namespace std;
using ll = long long;

ll rr() {
    ll s = 0, w = false, c = getchar();
    for (; !isdigit(c); c = getchar())
        w = w || c == '-';
    for (; isdigit(c); c = getchar())
        s = s * 10 + c - '0';
    return w ? -s : s;
}

// END OF HEADER

const int N = 100;
char maps[N][N];
bool d1[N], d2[N], d3[N], d4[N];

int main() {
    int n = rr();
    memset(maps, '.', sizeof(maps));
    int num = 0;
    
    std::function<void(int)> dfs = [&](int pos) {
        if (pos == n) {
            if (num++ != 0)
                printf("\n");
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    printf("%c%c", maps[i][j], " \n"[j == n - 1]);
                }
            }
        } else {
            for (int i = 0; i < n; i++) {
                if (d1[pos] || d2[i] || d3[i - pos + n] || d4[i + pos])
                    continue;
                maps[pos][i] = 'Q';
                d1[pos] = d2[i] = d3[i - pos + n] = d4[i + pos] = true;
                dfs(pos + 1);
                maps[pos][i] = '.';
                d1[pos] = d2[i] = d3[i - pos + n] = d4[i + pos] = false;
            }
        }
    };
    
    dfs(0);
    if (num == 0)
        printf("None");
    return 0;
}